import { sys } from "cc";
import { EnCommonModuleName } from "../const/EnCommon";

export class LocalData {
    private static data: LocalData;

    static get instance() {
        if (this.data == null) {
            this.data = new LocalData();
        }
        return this.data;
    }

    private commonObj : any
    private writepath = ""

    // 公共记录(如设置之类)
    SetItemCommon(key: EnCommonModuleName, value: any) {
        this.BaseSetItem(key,value)
    }

    GetItemCommon(key: EnCommonModuleName) {
        return this.BaseGetItem(key)
    }

    RemoveItem() {
        sys.localStorage.removeItem("angry_storage");
    }

    BaseSetItem(key,value)
    {
        let filename = "angry_storage";
        let obj = this.commonObj;
        if (obj == null)
        {
            obj = {};
            this.commonObj = obj;
        }
        obj[key] = value;
        let parseObj = JSON.stringify(obj);
        // if(sys.platform == sys.ANDROID)
        // {
        //     if (this.writepath == "")
        //     {
        //         this.writepath = `${jsb.fileUtils.getWritablePath()}/${filename}.txt`  ;        
        //     } 
        //     jsb.fileUtils.writeStringToFile(parseObj,this.writepath)  ;       
        // }
        // else
        // {
        //     cc.sys.localStorage.setItem(filename, parseObj);
        // }
    }

    BaseGetItem(key)
    {
        let filename = "angry_storage";
        let obj = this.commonObj;

        // if(cc.sys.platform == cc.sys.ANDROID)
        // {
        //     if (this.writepath == "")
        //     {
        //         this.writepath = `${jsb.fileUtils.getWritablePath()}/${filename}.txt`;          
        //     } 
        //     if(obj == null)
        //     {
        //         obj = {};
        //         if(jsb.fileUtils.isFileExist(this.writepath))
        //         {
        //             let jsonobj = jsb.fileUtils.getStringFromFile(this.writepath);
        //             if (jsonobj != null && jsonobj != "") {
        //                 obj = JSON.parse(jsonobj);
        //             }
        //         } 
        //         this.commonObj = obj;      
        //     }
        //     return obj[key]
        // }
        // else
        // {
            if (obj == null) {
                obj = {};
                let jsonobj = sys.localStorage.getItem(filename);
                if (jsonobj != null && jsonobj != "") {
                    obj = JSON.parse(jsonobj);
                }
                this.commonObj = obj; 
            }
            return obj[key];
        // }
    }


}